﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI.WebControls;
using System.Web.UI;


/// <summary>
/// Summary description for InitializingDatabaseObject
/// </summary>
public class InitializingDatabaseObject
{
    QuestionObject qObject;
    DataTable dataTable;
	public InitializingDatabaseObject(DataTable dataTable)
	{
        Variables.questionListText.Clear();
        Variables.questionListSymbol.Clear();
        this.dataTable = dataTable;
        initializingObject();


        
	}

    //Khởi tạo và ném nó vào một mảng các ID_Text .. có thể là radiobutton có thể là TextBox
    private void initializingObject()
    {
        foreach (DataRow row in dataTable.Rows)
        {
            foreach (DataColumn column in dataTable.Columns)
            {
                if (row[column].ToString().Trim().ToUpper().ToString() !="")
                {
                    qObject = new QuestionObject();
                    qObject.setColumName(column.ColumnName);
                    qObject.setValue(row[column].ToString());
                    Variables.questionListSymbol.Add(qObject);
                }
            }
        }

        ConvertTextListToSymbolList(Variables.questionListSymbol);
    }


    
    


    //Chuyển đổi Text to Symbol
    private QuestionObject ConvertSymbolToText(string columnName, string value)
    {
        List<ICheckAndConvertValues> convertType = new List<ICheckAndConvertValues>();
        convertType.Add(new Type_LuaChonMucDo(columnName,value));
        convertType.Add(new Type_ChiTieuTangTruong(columnName, value));
        convertType.Add(new Type_CoKhong(columnName, value));
        convertType.Add(new Type_KhaNang(columnName, value));
        convertType.Add(new Type_LuaChonMucDo(columnName, value));
        convertType.Add(new Type_MucDoCapNhat(columnName, value));
        convertType.Add(new Type_MucDoTinhXao(columnName, value));
        convertType.Add(new Type_NangLuc(columnName, value));
        convertType.Add(new Type_PhongCachLanhDao(columnName, value));
        convertType.Add(new Type_QuanTrong(columnName, value));
        convertType.Add(new Type_QuyMo(columnName, value));
        convertType.Add(new Type_QuyMoThiTruong(columnName, value));
        convertType.Add(new Type_TanSuat(columnName, value));
        convertType.Add(new Type_TinhTrangHienTai(columnName, value));
        convertType.Add(new Type_ViTheDoanhNghiep(columnName, value));

        foreach (ICheckAndConvertValues x in convertType)
        {
            if (x.isExistText())
            {
                QuestionObject rdObject = new QuestionObject();
                rdObject.setColumName(columnName);
                rdObject.setValue(x.getSymbol());
                return rdObject;
            }
        }
        QuestionObject txtObject = new QuestionObject();
        txtObject.setColumName(columnName);
        txtObject.setValue(value);
        return txtObject;
     }

     private void ConvertTextListToSymbolList(List<QuestionObject> qObjectList)
     {
            
            foreach (var x in qObjectList)
            {
                Variables.questionListText.Add(ConvertSymbolToText(x.getColumnName(), x.getValue()));
            }
     }

    //Ta đã có một list các ID và Symbol .. Việc tiếp theo là đưa chúng vào Textbox và Radio với đúng số ID
     public void LoadDataToRadioButton(ControlCollection control, string id)
    {
        foreach (Control c in control)
        {
            if (c is RadioButton)
            {
                if (((RadioButton)c).ID == id)
                {
                    ((RadioButton)c).Checked = true;
                }
            }
            
            if (c.HasControls())
            {
                LoadDataToRadioButton(c.Controls, id);
            }
        }
        
    }

     public void LoadDataToTextBox(ControlCollection control, string columnName, string value)
    {
        foreach (Control c in control)
        {
            if (c is TextBox)
            {
                if (((TextBox)c).ID == columnName)
                {
                    ((TextBox)c).Text= value;
                }
            }

            if (c.HasControls())
            {
                LoadDataToTextBox(c.Controls, columnName, value);
            }
        }
    }


     


    
}